home *** CD-ROM | disk | FTP | other *** search
/ Apple Reference & Presen…rary 6 (Reseller Edition) / Apple Ref. & Pres. Lib.v6.0.toast / pc / 3-Presentations / Markets / Education / HyperCard In Education / RotoRooter / card_3117.txt < prev    next >
Text File  |  1990-04-02  |  12KB  |  534 lines

  1. -- card: 3117 from stack: in
  2. -- bmap block id: 0
  3. -- flags: 4000
  4. -- background id: 2660
  5. -- name: Rooter
  6. ----- HyperTalk script -----
  7. on openCard
  8.   hide message
  9.   set the loc of message to 22,38
  10.   initGraph
  11.   eraseMarkers
  12.   updateGraph
  13. end openCard
  14.  
  15. on closeCard
  16.   set the loc of message to 22,300
  17. end closeCard
  18.  
  19. on initGraph
  20.   global gLeft, gTop, gUnit, gHSize, gVSize
  21.   global gHMid, gVMid, gRight, gBottom
  22.   put 204 into gLeft
  23.   put 81 into gTop
  24.   put 12 into gUnit
  25.   put 10 into gHSize
  26.   put 10 into gVSize
  27.   put gLeft + gHSize * gUnit into gHMid
  28.   put gTop + gVSize * gUnit into gVMid
  29.   put gLeft + gHSize * gUnit * 2 into gRight
  30.   put gTop + gVSize * gUnit * 2 into gBottom
  31.   put empty into field fx
  32.   set the hilight of bkgnd button "Limit Domain" to false
  33.   send mouseUp to bkgnd button "Limit Domain"
  34.   stdScale
  35. end initGraph
  36.  
  37. on updateGraph
  38.   hideMarkers
  39.   eraseFgnd
  40.   set the editBkgnd to true
  41.   eraseGraph
  42.   drawAxes
  43.   choose browse tool
  44. end updateGraph
  45.  
  46. on setMarkers
  47.   global gTop, gBottom, xPLim, yPLim, xNLim, yNLim, gYofXAxis, mkrSet
  48.   if field fx is empty then
  49.     answer "Specify f(x) first."
  50.   else
  51.     if gYofXAxis <= gTop or gYofXAxis >= gBottom then
  52.       answer "The X-axis must be inside the graph box."
  53.     else
  54.       if yPLim < 0 or yNLim > 0 then
  55.         answer "No roots are visible in this view."
  56.       else
  57.         eraseMarkers
  58.         put xPLim into card field fxPLim
  59.         put yPLim into card field fyPLim
  60.         put xNLim into card field fxNLim
  61.         put yNLim into card field fyNLim
  62.         showMarkers
  63.         put true into mkrSet
  64.       end if
  65.     end if
  66.   end if
  67. end setMarkers
  68.  
  69. on eraseMarkers
  70.   global mkrSet
  71.   set the visible of button PLim to false
  72.   set the visible of button NLim to false
  73.   eraseFgnd
  74.   put empty into card field rootEst
  75.   put empty into card field deltaY
  76.   put empty into card field fxPLim
  77.   put empty into card field fyPLim
  78.   put empty into card field fxNLim
  79.   put empty into card field fyNLim
  80.   put false into mkrSet
  81.   choose browse tool
  82. end eraseMarkers
  83.  
  84. on showMarkers
  85.   set the loc of button PLim to xCtoPClip( card field fxPLim ), yCtoPClip( card field fyPLim )
  86.   set the loc of button NLim to xCtoPClip( card field fxNLim ), yCtoPClip( card field fyNLim )
  87.   set the visible of button PLim to true
  88.   set the visible of button NLim to true
  89. end showMarkers
  90.  
  91. on hideMarkers
  92.   set the visible of button PLim to false
  93.   set the visible of button NLim to false
  94. end hideMarkers
  95.  
  96. on doEstimate
  97.   global gYofXAxis
  98.   if the visible of button PLim is false then
  99.     answer "Set the markers first."
  100.   else
  101.     if card field fyNLim = 0 or card field fyPLim = 0 then
  102.       answer "One of the markers is already on a root."
  103.     else
  104.       eraseFgnd
  105.       choose line tool
  106.       set lineSize to 2
  107.       drag from the loc of button PLim to the loc of button NLim
  108.       put card field fxPLim - card field fyPLim * ( card field fxNLim - card field fxPLim ) / ( card field fyNLim - card field fyPLim ) into xRoot
  109.       put xCtoP( xRoot ) into x0
  110.       put yCalc( xRoot ) into yRoot
  111.       put yCtoPClip( yRoot ) into y0
  112.       drag from x0, gYofXAxis to x0, y0
  113.       if yRoot < 0 then
  114.         set the loc of button NLim to x0, y0
  115.         put xRoot into card field fxNLim
  116.         put yRoot into card field fyNLim
  117.       else
  118.         set the loc of button PLim to x0, y0
  119.         put xRoot into card field fxPLim
  120.         put yRoot into card field fyPLim
  121.       end if
  122.       put xRoot into card field rootEst
  123.       put yRoot into card field deltaY
  124.       choose browse tool
  125.     end if
  126.   end if
  127. end doEstimate
  128.  
  129.  
  130.  
  131.  
  132. -- part 7 (button)
  133. -- low flags: 00
  134. -- high flags: A004
  135. -- rect: left=52 top=140 right=162 bottom=155
  136. -- title width / last selected line: 0
  137. -- icon id / first selected line: 0 / 0
  138. -- text alignment: 1
  139. -- font id: 0
  140. -- text size: 12
  141. -- style flags: 0
  142. -- line height: 16
  143. -- part name: Set Markers
  144. ----- HyperTalk script -----
  145. on mouseUp
  146.   setMarkers
  147. end mouseUp
  148.  
  149.  
  150.  
  151. -- part 8 (button)
  152. -- low flags: 00
  153. -- high flags: A004
  154. -- rect: left=52 top=165 right=187 bottom=155
  155. -- title width / last selected line: 0
  156. -- icon id / first selected line: 0 / 0
  157. -- text alignment: 1
  158. -- font id: 0
  159. -- text size: 12
  160. -- style flags: 0
  161. -- line height: 16
  162. -- part name: Erase Markers
  163. ----- HyperTalk script -----
  164. on mouseUp
  165.   eraseMarkers
  166. end mouseUp
  167.  
  168.  
  169.  
  170. -- part 9 (button)
  171. -- low flags: 00
  172. -- high flags: A004
  173. -- rect: left=68 top=200 right=222 bottom=137
  174. -- title width / last selected line: 0
  175. -- icon id / first selected line: 0 / 0
  176. -- text alignment: 1
  177. -- font id: 0
  178. -- text size: 12
  179. -- style flags: 0
  180. -- line height: 16
  181. -- part name: Estimate
  182. ----- HyperTalk script -----
  183. on mouseUp
  184.   doEstimate
  185. end mouseUp
  186.  
  187.  
  188.  
  189. -- part 10 (field)
  190. -- low flags: 01
  191. -- high flags: 0002
  192. -- rect: left=19 top=237 right=252 bottom=101
  193. -- title width / last selected line: 0
  194. -- icon id / first selected line: 0 / 0
  195. -- text alignment: 1
  196. -- font id: 2
  197. -- text size: 10
  198. -- style flags: 0
  199. -- line height: 13
  200. -- part name: rootEst
  201.  
  202.  
  203. -- part 11 (field)
  204. -- low flags: 01
  205. -- high flags: 0002
  206. -- rect: left=104 top=237 right=252 bottom=186
  207. -- title width / last selected line: 0
  208. -- icon id / first selected line: 0 / 0
  209. -- text alignment: 1
  210. -- font id: 2
  211. -- text size: 10
  212. -- style flags: 0
  213. -- line height: 13
  214. -- part name: deltaY
  215.  
  216.  
  217. -- part 12 (field)
  218. -- low flags: 01
  219. -- high flags: 0002
  220. -- rect: left=19 top=281 right=296 bottom=101
  221. -- title width / last selected line: 0
  222. -- icon id / first selected line: 0 / 0
  223. -- text alignment: 1
  224. -- font id: 2
  225. -- text size: 10
  226. -- style flags: 0
  227. -- line height: 13
  228. -- part name: fxPLim
  229.  
  230.  
  231. -- part 13 (field)
  232. -- low flags: 01
  233. -- high flags: 0002
  234. -- rect: left=104 top=281 right=296 bottom=186
  235. -- title width / last selected line: 0
  236. -- icon id / first selected line: 0 / 0
  237. -- text alignment: 1
  238. -- font id: 2
  239. -- text size: 10
  240. -- style flags: 0
  241. -- line height: 13
  242. -- part name: fyPLim
  243.  
  244.  
  245. -- part 14 (field)
  246. -- low flags: 01
  247. -- high flags: 0002
  248. -- rect: left=19 top=299 right=314 bottom=101
  249. -- title width / last selected line: 0
  250. -- icon id / first selected line: 0 / 0
  251. -- text alignment: 1
  252. -- font id: 2
  253. -- text size: 10
  254. -- style flags: 0
  255. -- line height: 13
  256. -- part name: fxNLim
  257.  
  258.  
  259. -- part 15 (field)
  260. -- low flags: 01
  261. -- high flags: 0002
  262. -- rect: left=104 top=299 right=314 bottom=186
  263. -- title width / last selected line: 0
  264. -- icon id / first selected line: 0 / 0
  265. -- text alignment: 1
  266. -- font id: 2
  267. -- text size: 10
  268. -- style flags: 0
  269. -- line height: 13
  270. -- part name: fyNLim
  271.  
  272.  
  273. -- part 16 (field)
  274. -- low flags: 01
  275. -- high flags: 0000
  276. -- rect: left=19 top=223 right=238 bottom=101
  277. -- title width / last selected line: 0
  278. -- icon id / first selected line: 0 / 0
  279. -- text alignment: 1
  280. -- font id: 2
  281. -- text size: 10
  282. -- style flags: 0
  283. -- line height: 13
  284. -- part name: rvLabel
  285.  
  286.  
  287. -- part 17 (field)
  288. -- low flags: 01
  289. -- high flags: 0000
  290. -- rect: left=104 top=223 right=238 bottom=186
  291. -- title width / last selected line: 0
  292. -- icon id / first selected line: 0 / 0
  293. -- text alignment: 1
  294. -- font id: 2
  295. -- text size: 10
  296. -- style flags: 0
  297. -- line height: 13
  298. -- part name: eyLabel
  299.  
  300.  
  301. -- part 18 (field)
  302. -- low flags: 01
  303. -- high flags: 0000
  304. -- rect: left=19 top=267 right=282 bottom=101
  305. -- title width / last selected line: 0
  306. -- icon id / first selected line: 0 / 0
  307. -- text alignment: 1
  308. -- font id: 2
  309. -- text size: 10
  310. -- style flags: 0
  311. -- line height: 13
  312. -- part name: mxLabel
  313.  
  314.  
  315. -- part 19 (field)
  316. -- low flags: 01
  317. -- high flags: 0000
  318. -- rect: left=104 top=267 right=282 bottom=186
  319. -- title width / last selected line: 0
  320. -- icon id / first selected line: 0 / 0
  321. -- text alignment: 1
  322. -- font id: 2
  323. -- text size: 10
  324. -- style flags: 0
  325. -- line height: 13
  326. -- part name: myLabel
  327.  
  328.  
  329. -- part 20 (field)
  330. -- low flags: 01
  331. -- high flags: 0000
  332. -- rect: left=19 top=256 right=268 bottom=186
  333. -- title width / last selected line: 0
  334. -- icon id / first selected line: 0 / 0
  335. -- text alignment: 1
  336. -- font id: 2
  337. -- text size: 10
  338. -- style flags: 0
  339. -- line height: 13
  340. -- part name: mpLabel
  341.  
  342.  
  343. -- part 21 (button)
  344. -- low flags: 00
  345. -- high flags: 0001
  346. -- rect: left=6 top=281 right=296 bottom=18
  347. -- title width / last selected line: 0
  348. -- icon id / first selected line: 30813 / 30813
  349. -- text alignment: 1
  350. -- font id: 0
  351. -- text size: 12
  352. -- style flags: 0
  353. -- line height: 16
  354. -- part name: mpLabel
  355.  
  356.  
  357. -- part 22 (button)
  358. -- low flags: 00
  359. -- high flags: 0001
  360. -- rect: left=6 top=299 right=314 bottom=18
  361. -- title width / last selected line: 0
  362. -- icon id / first selected line: 31589 / 31589
  363. -- text alignment: 1
  364. -- font id: 0
  365. -- text size: 12
  366. -- style flags: 0
  367. -- line height: 16
  368. -- part name: mnLabel
  369.  
  370.  
  371. -- part 23 (button)
  372. -- low flags: 80
  373. -- high flags: 2000
  374. -- rect: left=318 top=196 right=208 bottom=330
  375. -- title width / last selected line: 0
  376. -- icon id / first selected line: 31589 / 31589
  377. -- text alignment: 1
  378. -- font id: 0
  379. -- text size: 12
  380. -- style flags: 0
  381. -- line height: 16
  382. -- part name: NLim
  383. ----- HyperTalk script -----
  384. on mouseStillDown
  385.   put mConstrain( the mouseH ) into xS
  386.   put xPtoC( xS ) into xC
  387.   get yCalc( xC )
  388.   if it <= 0 then
  389.     set the loc of button NLim to xs, yCtoPClip( it )
  390.     put xC into card field fxNLim
  391.     put it into card field fyNLim
  392.   end if
  393. end mouseStillDown
  394.  
  395.  
  396.  
  397. -- part 24 (button)
  398. -- low flags: 80
  399. -- high flags: 2000
  400. -- rect: left=318 top=195 right=207 bottom=330
  401. -- title width / last selected line: 0
  402. -- icon id / first selected line: 30813 / 30813
  403. -- text alignment: 1
  404. -- font id: 0
  405. -- text size: 12
  406. -- style flags: 0
  407. -- line height: 16
  408. -- part name: PLim
  409. ----- HyperTalk script -----
  410. on mouseStillDown
  411.   put mConstrain( the mouseH ) into xS
  412.   put xPtoC( xS ) into xC
  413.   get yCalc( xC )
  414.   if it >= 0 then
  415.     set the loc of button PLim to xS, yCtoPClip( it )
  416.     put xC into card field fxPLim
  417.     put it into card field fyPLim
  418.   end if
  419. end mouseStillDown
  420.  
  421.  
  422.  
  423. -- part 26 (button)
  424. -- low flags: 00
  425. -- high flags: A004
  426. -- rect: left=9 top=30 right=58 bottom=111
  427. -- title width / last selected line: 0
  428. -- icon id / first selected line: 0 / 0
  429. -- text alignment: 1
  430. -- font id: 2
  431. -- text size: 14
  432. -- style flags: 2048
  433. -- line height: 18
  434. -- part name: RotoRooter
  435. ----- HyperTalk script -----
  436. on mouseUp
  437.   answer "Written by Jeffry A. Spain" with "So What?"
  438. end mouseUp
  439.  
  440.  
  441.  
  442. -- part 28 (button)
  443. -- low flags: 00
  444. -- high flags: A002
  445. -- rect: left=16 top=319 right=340 bottom=76
  446. -- title width / last selected line: 0
  447. -- icon id / first selected line: 0 / 0
  448. -- text alignment: 1
  449. -- font id: 0
  450. -- text size: 12
  451. -- style flags: 0
  452. -- line height: 16
  453. -- part name: Return
  454. ----- HyperTalk script -----
  455. on mouseUp
  456.   global ReturnCard
  457.   go ReturnCard
  458. end mouseUp
  459.  
  460.  
  461.  
  462. -- part contents for background part 3
  463. ----- text -----
  464. 1
  465.  
  466. -- part contents for background part 4
  467. ----- text -----
  468. 1
  469.  
  470. -- part contents for background part 11
  471. ----- text -----
  472. -10
  473.  
  474. -- part contents for background part 10
  475. ----- text -----
  476. 10
  477.  
  478. -- part contents for background part 12
  479. ----- text -----
  480. -10
  481.  
  482. -- part contents for background part 13
  483. ----- text -----
  484. 10
  485.  
  486. -- part contents for background part 37
  487. ----- text -----
  488. 0
  489.  
  490. -- part contents for background part 44
  491. ----- text -----
  492. 20
  493.  
  494. -- part contents for background part 48
  495. ----- text -----
  496. y unit =
  497.  
  498. -- part contents for background part 49
  499. ----- text -----
  500. x unit =
  501.  
  502. -- part contents for background part 51
  503. ----- text -----
  504. f(x) =
  505.  
  506. -- part contents for background part 52
  507. ----- text -----
  508. Shift
  509. View
  510.  
  511. -- part contents for background part 53
  512. ----- text -----
  513. Change
  514. Scale
  515.  
  516. -- part contents for card part 16
  517. ----- text -----
  518. Root Value
  519.  
  520. -- part contents for card part 17
  521. ----- text -----
  522. Error in Y
  523.  
  524. -- part contents for card part 20
  525. ----- text -----
  526. Marker Positions
  527.  
  528. -- part contents for card part 18
  529. ----- text -----
  530. x
  531.  
  532. -- part contents for card part 19
  533. ----- text -----
  534. y